const fs = require("fs");
const { resolve } = require("path");
const path = require("path")
//首先这个process.stdin就是一个可写流
// const reader = process.stdin;
// console.log(reader);
// reader.on("data" , (chunk) => {
//     console.log(chunk);
// });

/*
    创建文件夹的方法
        fs.mkdir(path , (err) => {})  异步方法
        fs.mkdirSync(path)  同步方法
    创建文件方法
        fs.writeFile() , 这个如果没有该文件那么就会创建文件并且写入内容
    删除文件
        fs.unlink(path , () => {})
        fs.unlinkSync(path);
    删除文件夹
        fs.rmdir()
        fs.rmdirSync()

*/

/*
    如何使readline来获取用户输入的信息
    首先映入readline模块 ， const readline = require(readline);
    然后使用 readline.createInterface({
      input: process.stdin,
      output: process.stdout
    })
    r1.question("message" , (answer) => {
      console.log(answer);\
      r1.close()
      需要加上这个close ， 因为这个创建不会自动关闭 ， 需要自己去手动的关闭 ， 这个里面的参数answer就是用户输入的信息
    })

*/ 

//引入readline模块
// const readline = require("readline");
// let r1 = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
// })
// let r2 = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
// })
// let r3 = readline.createInterface({
//     input: process.stdin,
//     output: process.stdout
// })

// //调用接口方法
// r1.question("请输入要创建的文件夹:\t", function (answer) {
//     console.log("我的名字是：", answer);
//     // 不加close，则不会结束
//     r1.close();
// })

// //close事件监听
// r1.on("close", function () {
//     // 结束程序
//     r2.question("请输入要创建的文件:\t" , function(answer) {

//         r2.close();
//     });
// })

// r2.on("close" , () => {
//     r3.question("请输入要删除的文件:\t" , function(answer) {

//         r3.close();
//     })
// });

// r3.on("close" , () => {
//     process.exit()
// });

const readline = require('readline')

const r1 = readline.createInterface({
  input: process.stdin,
  output: process.stdout
})

const question1 = () => {
  return new Promise(async (res , rej) => {
    let filepath;
    await new Promise((res , rej) => {
      r1.question("请输入要创建的文件夹: " , (answer) => {
        fs.mkdirSync(path.join(__dirname , answer.split(" ")[1]));
        filepath = path.join(__dirname , answer.split(" ")[1]);
        res();
      });
    })
    res(filepath);
    return filepath;
  });
}

  question1().then(async function(filepath) {
    console.log(123456);
    console.log(filepath);
    await new Promise((res , rej) => {
      r1.question("请输入要创建的文件夹: " , (answer) => {
        fs.writeFileSync(path.join(filepath , answer.split(" ")[1]) , "hello world");
        res();
      });
    })
    return filepath;
  }).then(function(filepath) {
    console.log(123456);
    r1.question("请输入要删除的文件: " , (answer) => {
      fs.unlinkSync(path.join(filepath , answer.split(" ")[1]));
    });
  })



// const question1 = () => {
//   return new Promise((resolve, reject) => {
//     rl.question('请输入要创建的文件夹:', (answer) => {
//         fs.mkdirSync(path.join(__dirname , answer.split(" ")[1]))
//         resolve()
//     })
//   })
// }

// const question2 = () => {
//   return new Promise((resolve, reject) => {
//     rl.question('请输入要创建的文件:', (answer) => {
//         fs.writeFileSync(path.join(__dirname , answer.split(" ")[1]) , "hello node")
//         resolve()
//     })
//   })
// }

// const question3 = () => {
//     return new Promise((resolve , reject) => {
//         rl.question("请输入要删除的文件:" , (answer) => {
//             // console.log(answer);
//             fs.unlink(path.join(__dirname , answer.split(" ")[1]) , (err) => {
//                 console.error(err);
//             });
//             resolve();
//         });
//         //怎么获取filedir文件夹
//         //promise和async的搭配使用
//     });
// }

// const main = async () => {
//   await question1()
//   await question2()
//   await question3()
//   rl.close()
// }

// main();
